home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 076-100 / disk_091 / adlrun / adltrans.c < prev    next >
C/C++ Source or Header  |  1992-05-06  |  1KB  |  78 lines

  1. #include <stdio.h>
  2.  
  3. #include "adltypes.h"
  4. #include "adlprog.h"
  5. #include "builtins.h"
  6. #include "adlrun.h"
  7.  
  8.  
  9. setverb()
  10. {
  11.     int16
  12.     i;
  13.  
  14.     assertargs( "$setv", 10 );
  15.     for( i = 0; i <= 9; i++ )
  16.     vecverb[ i ] = ARG( i + 1 );
  17.     RETVAL = 0;
  18. }
  19.  
  20.  
  21. hitverb()
  22. {
  23.     int16
  24.     i;
  25.  
  26.     assertargs( "$hit", 11 );
  27.     for( i = 0; i <= 9; i++ )
  28.     if( vecverb[ i ] == Verb ) {
  29.         ARG( 2 ) = ARG( i + 2 );
  30.         if( ARG( 2 ) )
  31.         move_obj();
  32.         RETVAL = 0;
  33.         return;
  34.     }
  35.     RETVAL = 0;
  36. }
  37.  
  38.  
  39. missverb()
  40. {
  41.     int16
  42.     i,
  43.     oldbp,
  44.     which;
  45.  
  46.     assertargs( "$miss", 10 );
  47.     for( i = 0; i <= 9; i++ ) {
  48.     if( vecverb[ i ] == Verb ) {
  49.         popip();
  50.         oldbp = pop();
  51.         which = ARG( i + 1 );
  52. #if DEBUG
  53.         if( (which < 0) || (which > NUMROUT) )
  54.         error( 26 );    /* Illegal rout for $miss */
  55. #endif
  56.         sp = bp;        /* Cut args off stack */
  57.         if( which && routspace[ which ] ) {
  58.         push( 1 );    /* stackdepth */
  59.         push( oldbp );    /* bp */
  60.         puship();    /* ip */
  61.         ip = routspace[ which ];
  62.         }
  63.         else {
  64.         push( 0 );
  65.         bp = oldbp;
  66.         }
  67.         return;
  68.     }
  69.     }
  70.     popip();
  71.     oldbp = pop();
  72.     sp = bp + 1;
  73.     stack[ bp ] = 0;
  74.     bp = oldbp;
  75. }
  76.  
  77. /*** EOF adltrans.c ***/
  78.